package com.likuicat.picture_ddd.application.service;

import com.likuicat.picture_ddd.interfaces.dto.space.analyze.*;
import com.likuicat.picture_ddd.domain.space.entity.Space;
import com.likuicat.picture_ddd.domain.user.entity.User;
import com.likuicat.picture_ddd.interfaces.vo.space.analyze.*;

import java.util.List;

/**
* @author fc3379757631
* @createDate 2025-05-06 16:38:48
*/
public interface SpaceAnalyzeApplicationService{

    /**
     * 获取空间资源使用分析数据
     * @param request
     * @param loginUser
     * @return
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest request, User loginUser);

    /**
     * 获取空间分类分析数据
     * @param request
     * @param loginUser
     * @return
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyzeList(SpaceCategoryAnalyzeRequest request, User loginUser);

    /**
     * 获取空间图片标签分析数据
     * @param request
     * @param loginUser
     * @return
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyzeList(SpaceTagAnalyzeRequest request, User loginUser);

    /**
     * 获取空间图片大小分析数据
     * @param request
     * @param loginUser
     * @return
     */
    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyzeList(SpaceSizeAnalyzeRequest request, User loginUser);

    /**
     * 获取用户上传行为分析数据
     * @param request
     * @param loginUser
     * @return
     */
    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyzeList(SpaceUserAnalyzeRequest request, User loginUser);

    /**
     * 空间使用排行分析（仅管理员）
     * @param request
     * @param loginUser
     * @return
     */
    List<Space> getSpaceRankAnalyzeList(SpaceRankAnalyzeRequest request, User loginUser);
}
